# f = open('hello-file',mode='r',encoding='utf-8')
# print(f.read())
# f.close()
# open() 打开
# file 文件路径
# mode 操作文件模式
# encoding 文件编码方式
# f 文件句柄（用句柄操作文件，像锅把）

# 文件操作
#     1、打开文件
#     2、操作文件
#     3、关闭文件
# 文件操作模式：
# r(默认为r,没有文件会报错), w, a（重要）
# rb, wb, ab（不多用）
# r+, w+, a+（很少用）
# f = open('hello-file', mode='r', encoding='utf-8')
# print(f.read(1))     # 全部读取
# print(f.read(3))    # 按字符读
#
# print(f.readline())     # 按行读最后会有换行
# print(f.readline().strip())     # 去除换行
# print(f.read())     # 文件读取不会回头
# print(f.readlines())        # 读取内容存放在列表中

# 解决大文件
# for i in f:
#     print(i)    # 按行遍历文件
#
# f.close()

# w操作
#     1、先清空
#     2、再写入
# f = open('hello-file', mode='w', encoding='utf-8')
# f.write('213556')
# f.close()
# 路径
# 绝对路径（从磁盘出发）：D:\project\pythonlearn\learning-in-python\day07\hello-file
# 相对路径：相当于前文件夹(相对到底就是绝对) hello-file (推荐)
# 转义路径
#     1、'\\'
#     2、r'C:\user\net'; r 为repr，显示数据原生态


# a操作 追加
# f = open('hello-file', mode='a', encoding='utf-8')
# f.write('1-3465445\n')

# rb wb操作（b,字节）
# f = open("hello-file", 'rb'
# print(f.read())
# print(f.read(3))     # 按字节读取，读完再读就没了
# f.close()
# f1 = open("hello-file1", 'wb') #清空写
# f1.write(f.read())
# f.close()

# ab操作 追加（最没用）
# f1 = open("hello-file1", 'ab')
# f1.write(f.read())
# f.close()

# r+操作 先读后写
# 错误操作
# f = open("hello-file1", 'r+', encoding='utf-8')
# f.write('appapp\n')
# print(f.read())
# f.close()
# 正确操作
# f = open("hello-file", 'r+', encoding='utf-8')
# print(f.read())
# f.write('appapp\n')
# f.close()

# w+操作 清空写读
# f = open("hello-file1", 'w+', encoding='utf-8')
# print(f.tell())
# f.write('appapp\n')
# f.seek(0)
# print(f.read())   # 读不到内容，因为写完后光标为与文件末尾
# f.close()

# a+ 追加写读
# f = open("hello-file1", 'a+', encoding='utf-8')
# f.write('appapp\n')
# print(f.read())   # 同上没有内容
# f.close()

# 移动光标后
# f = open("hello-file1", 'a+', encoding='utf-8')
# f.write('appapp\n')
# print(f.tell())
# f.seek(60)
# print(f.read())   # 同上没有内容
# f.close()

# 其他操作
# tell 查看光标 -- 返回字节数
# seek 移动光标
#     1、seek(0,0) -- 移动到文件头部
#     2、seek(0,1) -- 当前位置
#     3、seek(0,2) -- 移动到文件末尾
#     4、seek(0) -- 按照字节进行移动，字节数取决于编码集

# 文件修改
# 当打开多个文件时，容易出错，切会忘记关闭文件；with 可以解决支个事情
# with open('hello-file', 'r', encoding='utf-8')as f,\
#         open('hello-file1', 'w', encoding='utf-8')as f1:
#     for i in f:
#         s = i.replace('1', '2')
#         f1.write(s)
import os     # 备份文件
# os.rename('hello-file', 'hello-file.backup')
# os.rename('hello-file1', 'hello-file')
# os.remove('文件名')      # 删除文件
# os.mkdir("文件夹名")      # 创建文件夹
# os.rmdir("文件夹名")      # 删除文件夹
# os.getcwd("文件名")      # 返回目录路径
# os.chdir("文件名")        # 切换到"文件名"路径下
# os.listdir()              # 返回当前目录的文件列表
